package register;

import java.util.List;

public class Mitglied implements Komponente {
	private int id;
	private static int zaehler;
	private String name;
	private int rang;
	
	/**
	 * Konstuiert ein Mitglied mit Namen, Rang und eindeutiger ID.
	 * @param name
	 * @param rang
	 */
	public Mitglied(String name, int rang) {
		this.id = zaehler++;
		this.name = name;
		this.rang = rang;
	}

	@Override
	public void hinzufuegen(Komponente k) {
		System.out.println("Hinzufügen fehlgeschlagen!");
		System.out.println("Komponente ist Blatt und kann keine Komponenten aufnehmen.");
	}	
	
	@Override
	public void loeschen(Komponente k) {
		System.out.println("Löschen fehlgeschlagen!");
		System.out.println("Komponente ist Blatt und hat keine entfernbaren Komponenten.");
	}
	
	@Override
	public Komponente sucheRegister(String name) {
		return null;
	}

	@Override
	public boolean istRegister() {
		return false;
	}
	
	@Override
	public String getName() {
		return name;
	}

	@Override
	public int getId() {
		return id;
	}
	
	@Override
	public int getRang() {
		return rang;
	}
	
	@Override
	public List<Komponente> getKinder() {
		System.out.println("Komponente ist Blatt und kann nicht durchsucht werden.");
		return null;
	}
	
	@Override
	public void setRang(int rang) {
		this.rang = rang;
	}
	
	@Override
	public void printMitglieder() {
		System.out.println("Komponente ist Blatt und hat keine Mitglieder!");
	}
	
	/**
	 * Gibt das Mitglied auf dem Bildschirm aus, 
	 * und formatiert die Ausgabe.
	 */
	@Override
	public void printStruktur() {
		StringBuffer tabs = new StringBuffer();
		
		for (int i=0; i<rang; i++)
			tabs.append("    ");
		
		System.out.println(tabs.toString()+this.toString());
	}
	
	@Override
	public String toString() {
		return name+"("+id+")"+" Rang:"+rang;
	}
}
